package com.hbnu.system.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author ${author}
 * @since 2023-05-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("report")
public class Report implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 研究报告编号
     */
    @ApiModelProperty(value = "主键")
    @TableId(value = "ReportID", type = IdType.ASSIGN_ID)
    private String ReportID;

    /**
     * 统计分类
     */
    @ApiModelProperty(value = "统计分类")
    @TableField("classifi")
    private String classifi;

    /**
     * 所属机构
     */
    @ApiModelProperty(value = "所属机构")
    @TableField("organization")
    private String organization;

    /**
     * 研究报告名称
     */
    @ApiModelProperty(value = "研究报告名称")
    @TableField("reportName")
    private String reportName;

    /**
     * 第一作者
     */
    @ApiModelProperty(value = "第一作者")
    @TableField("leadAuthor")
    private String leadAuthor;

    /**
     * 采纳时间
     */
    @ApiModelProperty(value = "采纳时间")
    @TableField(value = "adoptDate", fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDate adoptdate;

    /**
     * 采纳单位
     */
    @ApiModelProperty(value = "采纳单位")
    @TableField("adoptUnit")
    private String adoptUnit;

    /**
     * 报告撰写人单位
     */
    @ApiModelProperty(value = "报告撰写人单位")
    @TableField("reportUnit")
    private String reportUnit;

    /**
     * 研究报告来源
     */
    @ApiModelProperty(value = "研究报告来源")
    @TableField("reportOrigin")
    private String reportOrigin;

    /**
     * 咨询调研类别
     */
    @ApiModelProperty(value = "咨询调研类型")
    @TableField("surveyCate")
    private String surveyCate;

    /**
     * 研究报告字数（千字
     */
    @ApiModelProperty(value = "研究报告字数（千字")
    @TableField("wordsNum")
    private String wordsNum;

    /**
     * 一级学科
     */
    @ApiModelProperty(value = "一级学科")
    @TableField("firstDiscipline")
    private String firstDiscipline;

    /**
     * 二级学科
     */
    @ApiModelProperty(value = "二级学科")
    @TableField("secondaryDiscipline")
    private String secondaryDiscipline;

    /**
     * 关键字
     */
    @ApiModelProperty(value = "关键字")
    @TableField("keywords")
    private String keywords;

    /**
     * 摘要
     */
    @ApiModelProperty(value = "摘要")
    @TableField("abstract")
    private String abstract1;

//    /**
//     * 附件
//     */
//    @ApiModelProperty(value = "附件")
//    @JsonDeserialize(using = PostDeserializer.class)
//    private byte[] annex;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("notes")
    private String notes;

    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人")
    @TableField("entered")
    private String entered;

    /**
     * 录入日期
     */
    @ApiModelProperty(value = "录入日期")
    @TableField("enteredDate")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime enteredDate;

    /**
     * 所有作者
     */
    @ApiModelProperty(value = "所有作者")
    @TableField("allAuthor")
    private String allAuthor;

    /**
     * 关联项目
     */
    @ApiModelProperty(value = "关联项目")
    @TableField("associatedProjects")
    private String associatedProjects;

    /**
     * 审核结果
     */
    @ApiModelProperty(value = "审核结果")
    @TableField("status")
    private String status;

    /**
     * 审核学院
     */
    @ApiModelProperty(value = "审核学院")
    @TableField("dept")
    private String dept;

    /**
     * 未通过原因
     */
    @ApiModelProperty(value = "未通过原因")
    @TableField("reason")
    private String reason;

    /**
     * 量化得分
     */
    @ApiModelProperty(value = "量化得分")
    @TableField("score")
    private float score;
}
